Перекодировка файлов

Бывают ситуации, когда нужно перекодировать текстовые файлы из одной кодировки в другую. Например, вы хотите перекодировать HTML-файлы из кодировки KOI8-R в кодировку UTF-8, чтобы создать файлы справочной системы, или хотите перенести ваши проекты из кодировки SWD в кодировку UTF-8 (для этого опять же надо перекодировать файлы справки и перекодировать виджеты).
Перекодировать текстовые файлы из одной кодировки в другую возможно с помощью Note Pad (ped — Photon editor).
Для стандартных кодировок это делается так (на примере перекодировки из кодировки IBM 866 в кодировку UTF-8):
	1.	Запустить Note Pad:
ped &
	2.	Через меню «Options», пункт меню «Encoding» (или Ctrl-E) выбрать кодировку «Cyrillic (IBM 866)».
	3.	Открыть текстовый файл. При этом файл перекодируется из выбранной кодировки (IBM 866) в UTF-8.
	4.	Через меню «Options», пункт меню «Encoding» (или Ctrl-E) выбрать кодировку «Unicode in UTF-8».
	5.	Сохранить текстовый файл. При этом файл перекодируется из UTF-8 в выбранную кодировку (UTF-8).
	6.	Закрыть файл.
Для кодировки SWD особый случай: чтобы перекодировать файл из кодировки SWD в какую-либо другую кодировку (отличную от IBM 866), нужно предварительно перекодировать файл из кодировки SWD в кодировку IBM 866, для этого нужно:
	1.	Запустить Note Pad:
ped &
	2.	Через меню «Options», пункт меню «Encoding» (или Ctrl-E) выбрать кодировку «Unicode in UTF-8».
	3.	Открыть текстовый файл.
	4.	Через меню «Options», пункт меню «Encoding» (или Ctrl-E) выбрать кодировку «Western European (ISO 8859-1)».
	5.	Сохранить текстовый файл.
	6.	Закрыть файл.
Таким образом, чтобы перекодировать файл из кодировки SWD в кодировку, например, UTF-8, нужно сначала перекодировать файл из кодировки SWD в кодировку IBM-866, а затем уже из кодировки IBM 866 перекодировать его в кодировку UTF-8 (таким образом придётся два раза открывать и закрывать файл). А для перекодировки из какой-либо кодировки, отличной от IBM 866 в кодировку SWD нужно предварительно перекодировать файл в кодировку IBM 866.

Программно перекодировка текстовых строк осуществляется с помощью функций PxTranslate. Для перекодировки с помощью функций PxTranslateStateFromUTF() или PxTranslateFromUTF() из кодировки SWD в кодировку IBM 866 или для перекодировки с помощью функций PxTranslateStateToUTF() или PxTranslateToUTF() из кодировки IBM 866 в кодировку SWD нужно для функции PxTranslateSet() в качестве второго параметра указать "ISO-8859-1".
Вы можете скачать программу фильтр-перекодировщик, которая используя функции PxTranslate считывает символы со стандартного устройства ввода stdin, перекодирует их в другую кодировку и записывает на стандартное устройство вывода stdout. Символы, которые не удаётся перекодировать, заменяются на символы подчёркивания '_'. Программу можно использовать для перекодировки файлов, используя перенаправление ввода-вывода. Программа требует задания в командной строки двух параметров: кодировка входного файла и кодировка выходного файла. В качестве кодировки (charset) может быть имя секции, один из алиасов или значение переменной Description файла /usr/photon/translations/charsets. Примеры запуска:
translate windows-1251 IBM866 <readme.txt >readme
translate KOI8-R UTF-8 <index.html >bookset.html
translate UTF-8 ISO-8859-1 <base.wgtw |translate IBM866 UTF-8 >base1.wgtw
Версия для QNX 4: translate.
Версия для QNX 6: translate.